Первое озеро

Опишем имеющиеся данные:

describe(lake1)
error.dots(lake1)

cat("Матрица корреляций. Показываем только больше 0,5")
Матрица корреляций. Показываем только больше 0,5
# Calculate the correlation matrix first
lake1_cor <- cor(lake1, use = "pairwise.complete.obs")
# Get some colors
# Показываем только больше 0,5
corrplot(lake1_cor, order="original", method="square", tl.pos="lt", type="lower",        
        tl.col="black", tl.cex=0.6, tl.srt=45, 
        p.mat = 1-abs(lake1_cor), sig.level=0.50, insig = "blank")  

# Testing Correlations' Significance: P-values
#corr.test(lake1, use = "pairwise.complete.obs")$p

cat("Сколько факторов выбрать?")
Сколько факторов выбрать?
# Then use that correlation matrix to create the scree plot
scree(lake1_cor, factors = FALSE)

cat("Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:")
Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:
#Factor analysis of the data
fa_lake1 <- fa(r = cor(lake1), nfactors = 3)
Loading required namespace: GPArotation
The determinant of the smoothed correlation was zero.
This means the objective function is not defined for the null model either.
The Chi square is thus based upon observed correlations.
In factor.scores, the correlation matrix is singular, an approximation is used
#Getting the factor loadings and model analysis
fa_lake1$loadings

Loadings:
      MR1    MR2    MR3   
depth -0.628 -0.286 -0.414
Li     1.010              
Be     0.940              
P     -0.839  0.369 -0.134
Sc     1.010              
Ti     1.007              
V      0.963         0.114
Cr     0.840  0.347 -0.402
Mn     0.398  0.190  0.688
Co     0.828         0.296
Ni     0.947         0.130
Cu     0.356  0.124  0.688
Zn     0.148  0.771       
Ga     1.009              
As    -0.246  0.621 -0.643
Rb     1.010              
Sr     0.913         0.213
Y      0.978              
Zr     1.000              
Nb     1.014              
Mo     0.508  0.551  0.192
Ag    -0.371  0.384  0.451
Cd    -0.891  0.518  0.352
Sn     0.657  0.551 -0.235
Sb    -0.186  0.950       
Cs     1.013              
Ba     0.926         0.204
La     0.995              
Ce     0.997              
Pr     0.997              
Nd     0.997              
Sm     0.993              
Eu     1.004              
Gd     0.977              
Tb     1.008              
Dy     0.992              
Ho     0.985              
Er     0.986              
Tm     0.962              
Yb     0.981              
Lu     0.990              
Hf     1.011              
Ta     1.014              
W      0.679  0.548  0.183
Tl     0.996        -0.102
Pb     0.342  0.719  0.233
Bi     0.764  0.385 -0.101
Th     1.011        -0.105
U      0.831  0.103  0.326

                  MR1   MR2   MR3
SS loadings    37.659 4.307 2.613
Proportion Var  0.769 0.088 0.053
Cumulative Var  0.769 0.856 0.910
cat("1 фактор описывает данные на 76.9% 
    \n1+2 факторы описывают данные на 85.6%
    \n1+2+3 факторы описывают данные на 91%")
1 фактор описывает данные на 76.9% 
    
1+2 факторы описывают данные на 85.6%
    
1+2+3 факторы описывают данные на 91%
fa.plot(fa_lake1)

fa.diagram(fa_lake1)

cat("3D интерактивно")
3D интерактивно
fa1_scores <- factor.scores(lake1, fa_lake1)$scores
fa1_scores = as.data.frame(fa1_scores)
# 3D plot :
p <- plot_ly(fa1_scores, x = ~MR1, y = ~MR2, z = ~MR3, type="scatter3d", mode="markers")
p

Второе озеро

Опишем имеющиеся данные:

describe(lake2)
error.dots(lake2)

cat("Матрица корреляций. Показываем только больше 0,5")
Матрица корреляций. Показываем только больше 0,5
# Calculate the correlation matrix first
lake2_cor <- cor(lake2, use = "pairwise.complete.obs")
# Get some colors
# Показываем только больше 0,5
corrplot(lake2_cor, order="original", method="square", tl.pos="lt", type="lower",        
        tl.col="black", tl.cex=0.6, tl.srt=45, 
        p.mat = 1-abs(lake2_cor), sig.level=0.50, insig = "blank")  

# Testing Correlations' Significance: P-values
#corr.test(lake2, use = "pairwise.complete.obs")$p

cat("Сколько факторов выбрать?")
Сколько факторов выбрать?
# Then use that correlation matrix to create the scree plot
scree(lake2_cor, factors = FALSE)

cat("Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:")
Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:
#Factor analysis of the data
fa_lake2 <- fa(r = cor(lake2), nfactors = 3)
In factor.scores, the correlation matrix is singular, an approximation is used
#Getting the factor loadings and model analysis
fa_lake2$loadings

Loadings:
      MR1    MR2    MR3   
depth -0.504 -0.630 -0.199
Li     0.861  0.182 -0.203
Be     0.847  0.244       
P     -0.323 -0.645  0.102
Sc     0.394  0.263       
Ti     0.881  0.157 -0.195
V      0.552  0.319 -0.121
Cr     0.774  0.246       
Mn    -0.289 -0.694  0.109
Co     0.798 -0.200  0.527
Ni     0.528  0.423 -0.109
Cu     0.205  0.695       
Zn     0.210  0.473  0.208
Rb     0.908  0.104 -0.199
Sr     1.014 -0.278  0.114
Y      0.985              
Zr     0.790  0.189       
Nb     0.882  0.162 -0.175
Mo            0.586  0.200
Ag    -0.236 -0.339  0.589
Cd            0.648  0.531
Sn            0.522  0.502
Sb            0.436  0.720
Cs     0.886  0.145 -0.195
Ba           -0.759  0.236
La     1.041 -0.161       
Ce     1.045 -0.282  0.102
Pr     1.022 -0.110       
Nd     1.027 -0.105       
Sm     1.026 -0.104       
Eu     1.045 -0.208       
Gd     1.015              
Tb     0.980              
Dy     0.978              
Ho     0.965              
Er     0.960              
Tm     0.925  0.101       
Yb     0.948              
Lu     0.903  0.158       
Hf     0.852  0.203       
Ta     0.895        -0.139
W      0.213  0.618       
Tl     0.786  0.286       
Pb    -0.114         0.783
Bi                   0.698
Th     0.915  0.106 -0.181
U      0.746  0.371 -0.167

                  MR1   MR2   MR3
SS loadings    27.214 5.569 3.360
Proportion Var  0.579 0.118 0.071
Cumulative Var  0.579 0.697 0.769
cat("1 фактор описывает данные на 57.9% 
    \n1+2 факторы описывают данные на 69.7%
    \n1+2+3 факторы описывают данные на 76.9%")
1 фактор описывает данные на 57.9% 
    
1+2 факторы описывают данные на 69.7%
    
1+2+3 факторы описывают данные на 76.9%
fa.plot(fa_lake2)

fa.diagram(fa_lake2)

cat("3D интерактивно")
3D интерактивно
fa2_scores <- factor.scores(lake2, fa_lake2)$scores
fa2_scores = as.data.frame(fa2_scores)
# 3D plot :
p <- plot_ly(fa2_scores, x = ~MR1, y = ~MR2, z = ~MR3, type="scatter3d", mode="markers")
p

Третье озеро

Опишем имеющиеся данные:

describe(lake3)
error.dots(lake3)

cat("Матрица корреляций. Показываем только больше 0,5")
Матрица корреляций. Показываем только больше 0,5
# Calculate the correlation matrix first
lake3_cor <- cor(lake3, use = "pairwise.complete.obs")
# Get some colors
# Показываем только больше 0,5
corrplot(lake3_cor, order="original", method="square", tl.pos="lt", type="lower",        
        tl.col="black", tl.cex=0.6, tl.srt=45, 
        p.mat = 1-abs(lake3_cor), sig.level=0.50, insig = "blank")  

# Testing Correlations' Significance: P-values
#corr.test(lake3, use = "pairwise.complete.obs")$p

cat("Сколько факторов выбрать?")
Сколько факторов выбрать?
# Then use that correlation matrix to create the scree plot
scree(lake3_cor, factors = FALSE)

cat("Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:")
Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:
#Factor analysis of the data
fa_lake3 <- fa(r = cor(lake3), nfactors = 3)
The determinant of the smoothed correlation was zero.
This means the objective function is not defined for the null model either.
The Chi square is thus based upon observed correlations.
In factor.scores, the correlation matrix is singular, an approximation is used
#Getting the factor loadings and model analysis
fa_lake3$loadings

Loadings:
      MR1    MR2    MR3   
depth -0.814  0.448       
Li     1.003  0.156       
Be     0.340  0.766  0.458
P            -0.164  0.934
Sc    -0.706  0.499 -0.160
Ti     0.955  0.236       
V      0.633 -0.107  0.571
Cr     0.987  0.145       
Mn     0.864 -0.334       
Co     0.751         0.518
Ni     0.849         0.316
Cu     0.339  0.425  0.729
Zn     0.646 -0.288  0.478
Rb     1.010              
Sr     0.884 -0.102  0.261
Y     -0.414  0.871       
Zr     0.935              
Nb     0.979  0.245 -0.143
Mo     0.502         0.740
Ag    -0.201  0.447  0.482
Cd     0.762 -0.428  0.148
Sn     0.892         0.243
Sb     0.953 -0.126       
Cs     1.015        -0.160
Ba     0.929         0.117
La     0.120  0.987       
Ce     0.525  0.828 -0.197
Pr     0.590  0.754 -0.293
Nd     0.662  0.660 -0.351
Sm    -0.172  0.813 -0.194
Eu            0.880 -0.253
Gd            0.965       
Tb    -0.483  0.809       
Dy    -0.607  0.762       
Ho    -0.624  0.744       
Er    -0.536  0.796       
Tm    -0.534  0.759       
Yb    -0.134  0.837 -0.223
Lu     0.283  0.896 -0.170
Hf     0.941              
Ta     0.986  0.106       
W      0.838         0.388
Tl     0.964         0.107
Pb     0.965 -0.154       
Bi     0.971 -0.139       
Th     0.710  0.607 -0.330
U             0.860  0.167

                  MR1    MR2   MR3
SS loadings    24.054 13.508 4.330
Proportion Var  0.512  0.287 0.092
Cumulative Var  0.512  0.799 0.891
cat("1 фактор описывает данные на 51.2% 
    \n1+2 факторы описывают данные на 79.9%
    \n1+2+3 факторы описывают данные на 89.1%")
1 фактор описывает данные на 51.2% 
    
1+2 факторы описывают данные на 79.9%
    
1+2+3 факторы описывают данные на 89.1%
fa.plot(fa_lake3)

fa.diagram(fa_lake3)

cat("3D интерактивно")
3D интерактивно
fa3_scores <- factor.scores(lake3, fa_lake3)$scores
fa3_scores = as.data.frame(fa3_scores)
# 3D plot :
p <- plot_ly(fa3_scores, x = ~MR1, y = ~MR2, z = ~MR3, type="scatter3d", mode="markers")
p

Совместно

Опишем имеющиеся данные:

l=lakes[,48]
lakes=lakes[,-48]
describe(lakes)
error.dots(lakes)

cat("Матрица корреляций. Показываем только больше 0,5")
Матрица корреляций. Показываем только больше 0,5
# Calculate the correlation matrix first
lakes_cor <- cor(lakes, use = "pairwise.complete.obs")
# Get some colors
# Показываем только больше 0,5
corrplot(lakes_cor, order="original", method="square", tl.pos="lt", type="lower",        
        tl.col="black", tl.cex=0.6, tl.srt=45, 
        p.mat = 1-abs(lakes_cor), sig.level=0.50, insig = "blank")  

# Testing Correlations' Significance: P-values
#corr.test(lakes, use = "pairwise.complete.obs")$p

cat("Сколько факторов выбрать?")
Сколько факторов выбрать?
# Then use that correlation matrix to create the scree plot
scree(lakes_cor, factors = FALSE)

cat("Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:")
Проведём анализ с 3 факторами. Каждый объединяет хим элементы следующим образом:
#Factor analysis of the data
fa_lakes <- fa(r = cor(lakes), nfactors = 3)
#Getting the factor loadings and model analysis
fa_lakes$loadings

Loadings:
      MR1    MR3    MR2   
depth -0.266 -0.318  0.686
Li     0.935        -0.157
Be     0.911  0.160       
P     -0.198  0.105  0.862
Sc     0.374 -0.259 -0.566
Ti     0.897  0.114 -0.209
V             0.760 -0.243
Cr     0.779  0.248 -0.130
Mn                   0.936
Co     0.690  0.284  0.545
Ni     0.100  0.826 -0.236
Cu            0.886 -0.107
Zn            0.842  0.316
Rb     0.902  0.122 -0.177
Sr     0.794  0.265  0.303
Y      1.015              
Zr     0.683  0.182 -0.260
Nb     0.923        -0.224
Mo            0.892  0.224
Ag           -0.163  0.598
Cd            0.240 -0.219
Sn            0.767  0.219
Sb     0.313  0.107  0.106
Cs     0.908        -0.224
Ba                   0.897
La     0.997         0.193
Ce     0.877  0.196  0.329
Pr     0.989         0.200
Nd     0.995         0.192
Sm     1.014         0.156
Eu     1.014         0.209
Gd     1.018         0.100
Tb     1.003              
Dy     1.014 -0.166       
Ho     1.009 -0.174       
Er     1.011 -0.161       
Tm     1.004              
Yb     1.006              
Lu     1.007              
Hf     0.802  0.120 -0.267
Ta     0.767  0.319 -0.148
W      0.305  0.553 -0.150
Tl     0.874  0.220       
Pb     0.207         0.343
Bi     0.292         0.318
Th     0.952        -0.167
U      0.892  0.103 -0.174

                  MR1   MR3   MR2
SS loadings    26.451 5.397 5.340
Proportion Var  0.563 0.115 0.114
Cumulative Var  0.563 0.678 0.791
cat("1 фактор описывает данные на 56.3% 
    \n1+2 факторы описывают данные на 67.8%
    \n1+2+3 факторы описывают данные на 79.1%")
1 фактор описывает данные на 56.3% 
    
1+2 факторы описывают данные на 67.8%
    
1+2+3 факторы описывают данные на 79.1%
fa.plot(fa_lakes)

fa.diagram(fa_lakes)

cat("3D интерактивно")
3D интерактивно
fa_scores <- factor.scores(lakes, fa_lakes)$scores
fa_scores = as.data.frame(fa_scores)
fa_scores$lake = l
# 3D plot :
p <- plot_ly(fa_scores, x = ~MR1, y = ~MR2, z = ~MR3, color = ~lake, type="scatter3d", mode="markers")
p